home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 5 / TCLTYP.R < prev    next >
Text File  |  1991-10-05  |  17KB  |  528 lines

  1. /*
  2.  *    TCLTypes.r
  3.  *    Copyright ) 1991 Frederic F. Anderson
  4.  *    All rights reserved.  Usage as source code is freely permitted,
  5.  *    but commercial distribution of this file is prohibited.
  6.  *    Send me work! Call 317/257-2227
  7.  *
  8.  *    Certain #defines and comments Copyright )J1989-91 Symantec Corporation
  9.  *    This is not a product of Symantec Corporation.
  10.  
  11.  *    Caveat City:
  12.  *    This file covers only the types I use, and has been tested only
  13.      to the extent I use it myself.  Some constants may or may not work
  14.      as their name implies: For instance, I believe attaching a CPaneBorder
  15.      described by
  16.     resource (128, purgeable) {
  17.         kBorderFrame,
  18.         btnOutlineSize,
  19.         noShadow,
  20.         noShadowPen,
  21.         btnOutlineRound,
  22.         blackOutline,
  23.         btnMargin
  24.         };
  25.      to a CButton should produce the standard default-button outline,
  26.      but I've had no occasion to try it.
  27.      
  28.  *    SADerez doesn't work on my system, and therefore this header has
  29.      never been tried with SA[De]Rez.  My only experience is with
  30.      MPW 3.2 Rez/DeRez.
  31.      
  32.  *    The definition for 'Pano' and its descendants makes it easy to define
  33.      and DeRez panoramas whose bounds rectangles are declared to be the same
  34.      height and width as are declared at the beginning of the resource (first
  35.      two integers).  The up side to this is that it is the rational thing to do,
  36.      and it cuts some redundant information out of Rez files.  The down
  37.      side is that existing resources whose bounds rects do not match the Panorama
  38.      dimensions get DeRezed as unformatted hex.  Also, if you have been
  39.      using that bounds rect for purposes of your own, the definitions here won't
  40.      support you.
  41.  
  42.  *    Booleans are defined as 0/256 instead of 0/1 for compatibility with ResEdit.
  43.  
  44.  *    Much of this could be made neater with defter use of #defines, but I'd rather
  45.      debug code than resource scripts.
  46.  */
  47.  
  48. type 'Estr' as 'STR ';
  49.  
  50. type 'View' {
  51.     integer        isVisible = 256, notVisible = 0;
  52.     integer        isActive = 256, notActive = 0;
  53.     integer        wantsClicks = 256, doesntWantClicks = 0;
  54.     };
  55.  
  56. type 'Pane' {
  57.     integer        isVisible = 256, notVisible = 0;
  58.     integer        isActive = 256, notActive = 0;
  59.     integer        wantsClicks = 256, doesntWantClicks = 0;
  60.     
  61.     /*    Pane-specific    */
  62.     width:
  63.         integer;    /*    Pane width    */
  64.     height:
  65.         integer;    /*    Pane height    */
  66.         integer;    /*    Horiz. offset in enclosure    */
  67.         integer;    /*    Horiz. offset in enclosure    */
  68.     
  69.     integer     sizFIXEDLEFT,                /* Fixed length, anchored to left    */
  70.                 sizFIXEDRIGHT,                /* Fixed length, anchored to right    */
  71.                 sizFIXEDSTICKY = 4,            /* Fixed length, sticks to coords    */
  72.                                             /*   of its enclosure                */
  73.                 sizELASTIC;                    /* Variable length, always a fixed    */
  74.                                             /*   amount smaller than enclosure    */
  75.  
  76.     integer     sizFIXEDTOP = 2,            /* Fixed length, anchored to top    */
  77.                 sizFIXEDBOTTOM,                /* Fixed length, anchored to bottom    */
  78.                 sizFIXEDSTICKY,                /* Fixed length, sticks to coords    */
  79.                                             /*   of its enclosure                */
  80.                 sizELASTIC;                    /* Variable length, always a fixed    */
  81.                                             /*   amount smaller than enclosure    */
  82.     integer        noAutoRefresh,
  83.                 autoRefresh = 256;            /*    Auto-refresh    */
  84.     
  85.     integer        clipAPERTURE,
  86.                 clipFRAME,
  87.                 clipPAGE;                    /*    Print clipping    */
  88.     };
  89.  
  90. type 'ScPn' {
  91.     integer        isVisible = 256, notVisible = 0;
  92.     integer        isActive = 256, notActive = 0;
  93.     integer        wantsClicks = 256, doesntWantClicks = 0;
  94.     
  95.     width:
  96.         integer;    /*    Pane width    */
  97.     height:
  98.         integer;    /*    Pane height    */
  99.         integer;    /*    Horiz. offset in enclosure    */
  100.         integer;    /*    Horiz. offset in enclosure    */
  101.     
  102.     integer     sizFIXEDLEFT,                /* Fixed length, anchored to left    */
  103.                 sizFIXEDRIGHT,                /* Fixed length, anchored to right    */
  104.                 sizFIXEDSTICKY = 4,            /* Fixed length, sticks to coords    */
  105.                                             /*   of its enclosure                */
  106.                 sizELASTIC;                    /* Variable length, always a fixed    */
  107.                                             /*   amount smaller than enclosure    */
  108.  
  109.     integer     sizFIXEDTOP = 2,            /* Fixed length, anchored to top    */
  110.                 sizFIXEDBOTTOM,                /* Fixed length, anchored to bottom    */
  111.                 sizFIXEDSTICKY,                /* Fixed length, sticks to coords    */
  112.                                             /*   of its enclosure                */
  113.                 sizELASTIC;                    /* Variable length, always a fixed    */
  114.                                             /*   amount smaller than enclosure    */
  115.     integer        noAutoRefresh,
  116.                 autoRefresh = 256;            /*    Auto-refresh    */
  117.     
  118.     integer        clipAPERTURE,
  119.                 clipFRAME,
  120.                 clipPAGE;                    /*    Print clipping    */
  121.     
  122.     /*    ScrollPane-specific    */
  123.     
  124.     point        stepOneUnit = { 1, 1 };        /*    Single step    */
  125.     point        overlapOneUnit = { 1, 1 };    /*    Paging overlap    */
  126.     integer        noHorizBar,
  127.                 hasHorizBar = 256;                /*    Horizontal scroll bar    */
  128.     integer        noVertBar,
  129.                 hasVertBar = 256;                /*    Vertical scroll bar    */
  130.     integer        noSizeBox,
  131.                 hasSizeBox = 256;                /*    Size box    */
  132.     };
  133.  
  134. type 'Pano' {
  135.     integer        isVisible = 256, notVisible = 0;
  136.     integer        isActive = 256, notActive = 0;
  137.     integer        wantsClicks = 256, doesntWantClicks = 0;
  138.     
  139.     width:
  140.         integer;    /*    Pane width    */
  141.     height:
  142.         integer;    /*    Pane height    */
  143.         integer;    /*    Horiz. offset in enclosure    */
  144.         integer;    /*    Horiz. offset in enclosure    */
  145.     
  146.     integer     sizFIXEDLEFT,                /* Fixed length, anchored to left    */
  147.                 sizFIXEDRIGHT,                /* Fixed length, anchored to right    */
  148.                 sizFIXEDSTICKY = 4,            /* Fixed length, sticks to coords    */
  149.                                             /*   of its enclosure                */
  150.                 sizELASTIC;                    /* Variable length, always a fixed    */
  151.                                             /*   amount smaller than enclosure    */
  152.  
  153.     integer     sizFIXEDTOP = 2,            /* Fixed length, anchored to top    */
  154.                 sizFIXEDBOTTOM,                /* Fixed length, anchored to bottom    */
  155.                 sizFIXEDSTICKY,                /* Fixed length, sticks to coords    */
  156.                                             /*   of its enclosure                */
  157.                 sizELASTIC;                    /* Variable length, always a fixed    */
  158.                                             /*   amount smaller than enclosure    */
  159.     integer        noAutoRefresh,
  160.                 autoRefresh = 256;            /*    Auto-refresh    */
  161.     
  162.     integer        clipAPERTURE,
  163.                 clipFRAME,
  164.                 clipPAGE;                    /*    Print clipping    */
  165.     
  166.     /*    Panorama-specific    */
  167.     
  168. vOffset:
  169.     integer        zeroVOrigin;
  170. hOffset:
  171.     integer        zeroHOrigin;
  172.     integer =    $$Word(vOffset) + $$Word(height);
  173.     integer =    $$Word(hOffset) + $$Word(width);    /*    Bounds    */
  174.     
  175.     integer        noHScaling = 1;                /*    Horiz. Scaling    */
  176.     integer        noVScaling = 1;                /*    Vert. Scaling    */
  177.     point        notScrolled = { 0, 0 };        /*    Position    */ 
  178.     };
  179.     
  180. type 'AbTx' {
  181.     integer        isVisible = 256, notVisible = 0;
  182.     integer        isActive = 256, notActive = 0;
  183.     integer        wantsClicks = 256, doesntWantClicks = 0;
  184.     
  185.     width:
  186.         integer;    /*    Pane width    */
  187.     height:
  188.         integer;    /*    Pane height    */
  189.         integer;    /*    Horiz. offset in enclosure    */
  190.         integer;    /*    Horiz. offset in enclosure    */
  191.     
  192.     integer     sizFIXEDLEFT,                /* Fixed length, anchored to left    */
  193.                 sizFIXEDRIGHT,                /* Fixed length, anchored to right    */
  194.                 sizFIXEDSTICKY = 4,            /* Fixed length, sticks to coords    */
  195.                                             /*   of its enclosure                */
  196.                 sizELASTIC;                    /* Variable length, always a fixed    */
  197.                                             /*   amount smaller than enclosure    */
  198.  
  199.     integer     sizFIXEDTOP = 2,            /* Fixed length, anchored to top    */
  200.                 sizFIXEDBOTTOM,                /* Fixed length, anchored to bottom    */
  201.                 sizFIXEDSTICKY,                /* Fixed length, sticks to coords    */
  202.                                             /*   of its enclosure                */
  203.                 sizELASTIC;                    /* Variable length, always a fixed    */
  204.                                             /*   amount smaller than enclosure    */
  205.     integer        noAutoRefresh,
  206.                 autoRefresh = 256;            /*    Auto-refresh    */
  207.     
  208.     integer        clipAPERTURE,
  209.                 clipFRAME,
  210.                 clipPAGE;                    /*    Print clipping    */
  211.                 
  212. vOffset:
  213.     integer        zeroVOrigin;
  214. hOffset:
  215.     integer        zeroHOrigin;
  216.     integer =    $$Word(vOffset) + $$Word(height);
  217.     integer =    $$Word(hOffset) + $$Word(width);    /*    Bounds    */
  218.     
  219.     integer        noHScaling = 1;                /*    Horiz. Scaling    */
  220.     integer        noVScaling = 1;                /*    Vert. Scaling    */
  221.     point        notScrolled = { 0, 0 };        /*    Position    */ 
  222.     
  223.     /*    Text-specific    */
  224.     integer        usePaneWidth = -1;            /*    Line width    */
  225.     integer        wholeLines = 256,
  226.                 partialLinesOK = 0;            /*    wholeLines    */
  227.     integer        isEditable = 256,
  228.                 isNotEditable = 0;
  229.     integer        isStyleable = 256,
  230.                 isNotStyleable = 0;
  231.     };
  232.  
  233. type 'DlTx' {
  234.     integer        isVisible = 256, notVisible = 0;
  235.     integer        isActive = 256, notActive = 0;
  236.     integer        wantsClicks = 256, doesntWantClicks = 0;
  237.     
  238.     width:
  239.         integer;    /*    Pane width    */
  240.     height:
  241.         integer;    /*    Pane height    */
  242.         integer;    /*    Horiz. offset in enclosure    */
  243.         integer;    /*    Horiz. offset in enclosure    */
  244.     
  245.     integer     sizFIXEDLEFT,                /* Fixed length, anchored to left    */
  246.                 sizFIXEDRIGHT,                /* Fixed length, anchored to right    */
  247.                 sizFIXEDSTICKY = 4,            /* Fixed length, sticks to coords    */
  248.                                             /*   of its enclosure                */
  249.                 sizELASTIC;                    /* Variable length, always a fixed    */
  250.                                             /*   amount smaller than enclosure    */
  251.  
  252.     integer     sizFIXEDTOP = 2,            /* Fixed length, anchored to top    */
  253.                 sizFIXEDBOTTOM,                /* Fixed length, anchored to bottom    */
  254.                 sizFIXEDSTICKY,                /* Fixed length, sticks to coords    */
  255.                                             /*   of its enclosure                */
  256.                 sizELASTIC;                    /* Variable length, always a fixed    */
  257.                                             /*   amount smaller than enclosure    */
  258.     integer        noAutoRefresh,
  259.                 autoRefresh = 256;            /*    Auto-refresh    */
  260.     
  261.     integer        clipAPERTURE,
  262.                 clipFRAME,
  263.                 clipPAGE;                    /*    Print clipping    */
  264.                 
  265. vOffset:
  266.     integer        zeroVOrigin;
  267. hOffset:
  268.     integer        zeroHOrigin;
  269.     integer =    $$Word(vOffset) + $$Word(height);
  270.     integer =    $$Word(hOffset) + $$Word(width);    /*    Bounds    */
  271.     
  272.     integer        noHScaling = 1;                /*    Horiz. Scaling    */
  273.     integer        noVScaling = 1;                /*    Vert. Scaling    */
  274.     point        notScrolled = { 0, 0 };        /*    Position    */ 
  275.     
  276.     integer        usePaneWidth = -1;            /*    Line width    */
  277.     integer        wholeLines = 256,
  278.                 partialLinesOK = 0;            /*    wholeLines    */
  279.     integer        isEditable = 256,
  280.                 isNotEditable = 0;
  281.     integer        isStyleable = 256,
  282.                 isNotStyleable = 0;
  283.     
  284.     /*    DialogText-specific    */
  285.     
  286.     integer        isRequired = 256,
  287.                 isNotRequired = 0;
  288.     integer        doValidate = 256,
  289.                 doNotValidate = 0;
  290.     longint        infinite = 0x7FFFFFFF,
  291.                 str255 = 255;                /*    Max length    */
  292.     };
  293.  
  294. /*    Table selection flags    */
  295. #define selOnlyOne        1L        /* only one cell can be selected at a time    */
  296. #define    selNoDisjoint    2L        /* no disjoint selections allowed            */
  297. #define selExtendDrag    4L        /* extend selections by selecting hit cells    */
  298.                                 /* not by extending rectangles                */
  299. #define selDragRects    8L        /* dragging always selects rectangles        */
  300.  
  301.  
  302. type 'Tabl' {
  303.     integer        isVisible = 256, notVisible = 0;
  304.     integer        isActive = 256, notActive = 0;
  305.     integer        wantsClicks = 256, doesntWantClicks = 0;
  306.     
  307.     width:
  308.         integer;    /*    Pane width    */
  309.     height:
  310.         integer;    /*    Pane height    */
  311.         integer;    /*    Horiz. offset in enclosure    */
  312.         integer;    /*    Horiz. offset in enclosure    */
  313.     
  314.     integer     sizFIXEDLEFT,                /* Fixed length, anchored to left    */
  315.                 sizFIXEDRIGHT,                /* Fixed length, anchored to right    */
  316.                 sizFIXEDSTICKY = 4,            /* Fixed length, sticks to coords    */
  317.                                             /*   of its enclosure                */
  318.                 sizELASTIC;                    /* Variable length, always a fixed    */
  319.                                             /*   amount smaller than enclosure    */
  320.  
  321.     integer     sizFIXEDTOP = 2,            /* Fixed length, anchored to top    */
  322.                 sizFIXEDBOTTOM,                /* Fixed length, anchored to bottom    */
  323.                 sizFIXEDSTICKY,                /* Fixed length, sticks to coords    */
  324.                                             /*   of its enclosure                */
  325.                 sizELASTIC;                    /* Variable length, always a fixed    */
  326.                                             /*   amount smaller than enclosure    */
  327.     integer        noAutoRefresh,
  328.                 autoRefresh = 256;            /*    Auto-refresh    */
  329.     
  330.     integer        clipAPERTURE,
  331.                 clipFRAME,
  332.                 clipPAGE;                    /*    Print clipping    */
  333.                 
  334. vOffset:
  335.     integer        zeroVOrigin;
  336. hOffset:
  337.     integer        zeroHOrigin;
  338.     integer =    $$Word(vOffset) + $$Word(height);
  339.     integer =    $$Word(hOffset) + $$Word(width);    /*    Bounds    */
  340.     
  341.     integer        noHScaling = 1;                /*    Horiz. Scaling    */
  342.     integer        noVScaling = 1;                /*    Vert. Scaling    */
  343.     point        notScrolled = { 0, 0 };        /*    Position    */
  344.     
  345.     /*    Table-specific    */
  346.     integer;            /*    NumRows    */
  347.     integer;            /*    rowHeight    */
  348.     integer;            /*    numCols    */
  349.     integer;            /*    colWidth    */
  350.     hex longint;        /*    selection flags    */
  351.     longint        cmdNull,        cmdQuit,        cmdNew,        cmdOpen,        cmdClose,
  352.                 cmdSave,        cmdSaveAs,        cmdRevert,    cmdPageSetup,    cmdPrint,
  353.                 cmdClear = 21,    cmdSelectAll = 23            cmdOK = 100,    cmdCancel,
  354.                 cmdAbout = 256;
  355.     integer        noActiveBorder, activeBorder = 256;
  356.     integer        noRowBorder, rowBorder1;
  357.     integer        patCopy = 8,    patOr,            patXor,        patBic,            notPatCopy,
  358.                 notPatOr,        notPatXor,        notPatBic;
  359.     integer        rowBorderBlack;
  360.     integer        noColBorder, colBorder1;
  361.     integer        patCopy = 8,    patOr,            patXor,        patBic,            notPatCopy,
  362.                 notPatOr,        notPatXor,        notPatBic;
  363.     integer        colBorderBlack;
  364.     };
  365.  
  366. type 'PctP' {
  367.     integer        isVisible = 256, notVisible = 0;
  368.     integer        isActive = 256, notActive = 0;
  369.     integer        wantsClicks = 256, doesntWantClicks = 0;
  370.     
  371.     width:
  372.         integer;    /*    Pane width    */
  373.     height:
  374.         integer;    /*    Pane height    */
  375.         integer;    /*    Horiz. offset in enclosure    */
  376.         integer;    /*    Horiz. offset in enclosure    */
  377.     
  378.     integer     sizFIXEDLEFT,                /* Fixed length, anchored to left    */
  379.                 sizFIXEDRIGHT,                /* Fixed length, anchored to right    */
  380.                 sizFIXEDSTICKY = 4,            /* Fixed length, sticks to coords    */
  381.                                             /*   of its enclosure                */
  382.                 sizELASTIC;                    /* Variable length, always a fixed    */
  383.                                             /*   amount smaller than enclosure    */
  384.  
  385.     integer     sizFIXEDTOP = 2,            /* Fixed length, anchored to top    */
  386.                 sizFIXEDBOTTOM,                /* Fixed length, anchored to bottom    */
  387.                 sizFIXEDSTICKY,                /* Fixed length, sticks to coords    */
  388.                                             /*   of its enclosure                */
  389.                 sizELASTIC;                    /* Variable length, always a fixed    */
  390.                                             /*   amount smaller than enclosure    */
  391.     integer        noAutoRefresh,
  392.                 autoRefresh = 256;            /*    Auto-refresh    */
  393.     
  394.     integer        clipAPERTURE,
  395.                 clipFRAME,
  396.                 clipPAGE;                    /*    Print clipping    */
  397.     
  398.     /*    Panorama-specific    */
  399.     
  400. vOffset:
  401.     integer        zeroVOrigin;
  402. hOffset:
  403.     integer        zeroHOrigin;
  404.     integer =    $$Word(vOffset) + $$Word(height);
  405.     integer =    $$Word(hOffset) + $$Word(width);    /*    Bounds    */
  406.     
  407.     integer        noHScaling = 1;                /*    Horiz. Scaling    */
  408.     integer        noVScaling = 1;                /*    Vert. Scaling    */
  409.     point        notScrolled = { 0, 0 };        /*    Position    */
  410.     
  411.     /*    Picture-specific    */
  412.     
  413.     integer;        /*    ResID    */
  414.     integer        doNotScale, scale = 256;
  415.     };
  416.  
  417. type 'Popm' {
  418.     integer        isVisible = 256, notVisible = 0;
  419.     integer        isActive = 256, notActive = 0;
  420.     integer        wantsClicks = 256, doesntWantClicks = 0;
  421.     
  422.     /*    Pane-specific    */
  423.     width:
  424.         integer;    /*    Pane width    */
  425.     height:
  426.         integer;    /*    Pane height    */
  427.         integer;    /*    Horiz. offset in enclosure    */
  428.         integer;    /*    Horiz. offset in enclosure    */
  429.     
  430.     integer     sizFIXEDLEFT,                /* Fixed length, anchored to left    */
  431.                 sizFIXEDRIGHT,                /* Fixed length, anchored to right    */
  432.                 sizFIXEDSTICKY = 4,            /* Fixed length, sticks to coords    */
  433.                                             /*   of its enclosure                */
  434.                 sizELASTIC;                    /* Variable length, always a fixed    */
  435.                                             /*   amount smaller than enclosure    */
  436.  
  437.     integer     sizFIXEDTOP = 2,            /* Fixed length, anchored to top    */
  438.                 sizFIXEDBOTTOM,                /* Fixed length, anchored to bottom    */
  439.                 sizFIXEDSTICKY,                /* Fixed length, sticks to coords    */
  440.                                             /*   of its enclosure                */
  441.                 sizELASTIC;                    /* Variable length, always a fixed    */
  442.                                             /*   amount smaller than enclosure    */
  443.     integer        noAutoRefresh,
  444.                 autoRefresh = 256;            /*    Auto-refresh    */
  445.     
  446.     integer        clipAPERTURE,
  447.                 clipFRAME,
  448.                 clipPAGE;                    /*    Print clipping    */
  449.     
  450.     /*    Popup-specific    */
  451.     integer;    /*    Menu resID    */
  452.     integer        doNotAutoSelect, autoSelect = 256;
  453.     integer        selectOnlyOne, multiSelect;
  454.     };
  455.  
  456. type 'StdP' {
  457.     integer        isVisible = 256, notVisible = 0;
  458.     integer        isActive = 256, notActive = 0;
  459.     integer        wantsClicks = 256, doesntWantClicks = 0;
  460.     
  461.     /*    Pane-specific    */
  462.     width:
  463.         integer;    /*    Pane width    */
  464.     height:
  465.         integer;    /*    Pane height    */
  466.         integer;    /*    Horiz. offset in enclosure    */
  467.         integer;    /*    Horiz. offset in enclosure    */
  468.     
  469.     integer     sizFIXEDLEFT,                /* Fixed length, anchored to left    */
  470.                 sizFIXEDRIGHT,                /* Fixed length, anchored to right    */
  471.                 sizFIXEDSTICKY = 4,            /* Fixed length, sticks to coords    */
  472.                                             /*   of its enclosure                */
  473.                 sizELASTIC;                    /* Variable length, always a fixed    */
  474.                                             /*   amount smaller than enclosure    */
  475.  
  476.     integer     sizFIXEDTOP = 2,            /* Fixed length, anchored to top    */
  477.                 sizFIXEDBOTTOM,                /* Fixed length, anchored to bottom    */
  478.                 sizFIXEDSTICKY,                /* Fixed length, sticks to coords    */
  479.                                             /*   of its enclosure                */
  480.                 sizELASTIC;                    /* Variable length, always a fixed    */
  481.                                             /*   amount smaller than enclosure    */
  482.     integer        noAutoRefresh,
  483.                 autoRefresh = 256;            /*    Auto-refresh    */
  484.     
  485.     integer        clipAPERTURE,
  486.                 clipFRAME,
  487.                 clipPAGE;                    /*    Print clipping    */
  488.     
  489.     /*    Popup-specific    */
  490.     integer;    /*    Menu resID    */
  491.     integer        doNotAutoSelect, autoSelect = 256;
  492.     integer        selectOnlyOne, multiSelect;
  493.     
  494.     /*    StdPopup-specific    */
  495.     integer        noHAutosize, hAutosize = 256;
  496.     integer        noVAutosize, vAutosize = 256;
  497.     };
  498.  
  499. /*    Border flags    */
  500. #define        kBorderNone            0x00
  501. #define        kBorderLeft            0x01
  502. #define        kBorderTop            0x02
  503. #define        kBorderRight        0x04
  504. #define        kBorderBottom        0x08
  505. #define        kBorderFrame        (kBorderLeft+kBorderTop+kBorderRight+kBorderBottom)
  506. #define        kBorderOval            0x10
  507. #define        kBorderRoundRect    0x20
  508. #define        kBorderRsrv1        0x40
  509. #define        kBorderRsrv2        0x80
  510.  
  511. type 'PBrd' {
  512.     hex longint;                        /*    Flags    */
  513.     point    standardSize = { 1, 1 },
  514.             btnOutlineSize = { 3, 3 };    /*    PenSize    */
  515.     point    noShadow = { 0, 0 },
  516.             offset2 = { 2, 2 };            /*    Shadow offset    */
  517.     point    noShadowPen = { 0, 0 },
  518.             shadowPen1 = { 1, 1 },
  519.             shadowPen2 = { 2, 2 };        /*    Shadow pen size    */
  520.     point    notRound = { 0, 0 },
  521.             round4 = { 4, 4 },
  522.             btnOutlineRound = { 16, 16 };    /*    Roundness    */
  523.     integer    blackOutline = 0;            /* 'PAT ' id for outline    */
  524.     rect    noMargin = { 0, 0, 0, 0 },
  525.             oneMargin = { -1, -1, 1, 1 },
  526.             btnMargin = { -4, -4, 4, 4 };    /*    Margin    */
  527.     };
  528.